package main

import (
	"MaterialIdentification/svc"
	"github.com/gin-gonic/gin"
	"log/slog"
	"net/http"
)

func Register(context *gin.Context) {
	u := User{}

	err := context.BindJSON(&u)
	if err != nil {
		slog.Error("参数绑定错误", "err", err)
		return
	}

	userModel := User{}

	err = svc.Db.Where("username=?", u.Name).Find(&userModel).Error
	if err != nil {
		slog.Error("数据boom了", "err", err)
		context.JSON(http.StatusOK, NewResp(1, "系统异常"))
		return
	}

	if userModel.Id != 0 {
		context.JSON(http.StatusOK, NewResp(1, "用户名已存在，注册失败"))
		return
	}

	err = svc.Db.Create(&u).Error
	if err != nil {
		slog.Error("创建用户失败", "err", err)
		context.JSON(http.StatusOK, NewResp(1, "创建用户失败"))
		return
	}

	context.JSON(http.StatusOK, NewResp(0, "注册成功"))
}
